package org.liang.jdbc.repository;

import javax.annotation.Resource;

import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.support.JdbcDaoSupport;

/**
 * 数据实现基类.
 * 
 * <pre>
 * 将jdbcTemplate注入, 所有数据查询子类均需继承此类
 * </pre>
 * 
 * @author L.Yang
 * @version 1.0, 2015年6月1日
 */
public abstract class BaseRepository extends JdbcDaoSupport {

    /**
     * 构建预处理语句中 参数 字符串 .<br>
     * eg. 当size=3时 返回 (?,?,?)
     * 
     * @param size
     *            参数语句 中参数个数
     * @return 预处理语句的 参数 字符串
     */
    protected static String buildPreparedStatement4Args(int size) {
        int imax = size - 1;
        StringBuilder sql = new StringBuilder();
        sql.append("(");
        for (int i = 0;; i++) {
            sql.append("?");
            if (i == imax) return sql.append(")").toString();
            sql.append(", ");
        }
    }

    @Resource(name = "jdbcTemplate")
    protected void setJb(JdbcTemplate jdbcTemplate) {
        super.setJdbcTemplate(jdbcTemplate);
    }
}
